<template>
	<view>
		<view class="order-status-content" v-if="orderDetail.orderStatus != 0">
			<text class="order-status-text">
			{{orderDetail.orderStatus | orderStatusFilter}}		
			</text>
		</view>
		<view class="order-status-content" v-else>
			<text class="order-time-text">
			{{orderDetail.orderStatus | orderStatusFilter}}	
				剩余支付时间（超时自动关闭)
				{{min}}分钟{{sec}}秒
			</text>
		</view>
		
		<!-- 地址 -->
		<!-- <navigator url="/pages/address/address?source=1" class="address-section"> -->
		<view class="address-section">
			<view class="order-content">
				<text class="yticon icon-shouhuodizhi"></text>
				<view class="cen">
					<view class="top">
						<text class="name">{{ orderDetail.userName }}</text>
						<text class="mobile">{{ orderDetail.userPhone }}</text>
					</view>
					<text class="address">{{ orderDetail.userAddress }}</text>
				</view>
			</view>
		</view>
		<!-- </navigator> -->

		<view class="goods-section">
			<!-- 商品列表 -->
			<view class="g-item" v-for="(item, index) in orderItemList">
				<image :src="item.goodImg"></image>
				<view class="right">
					<text class="title clamp">{{ item.goodName }}</text>
					<view class="price-box">
						<text class="price">￥{{ item.goodPrice }}</text>
						<text class="number">x {{ item.goodQuantity }}</text>
					</view>
				</view>
			</view>
		</view>
		<!-- 订单详情 -->
		<view class="yt-list">
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">订单编号</text>
				<text class="cell-tip">{{ orderDetail.orderSn }}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">下单时间</text>
				<text class="cell-tip">{{ orderDetail.createTime | formatTime }}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">支付时间</text>
				<text class="cell-tip">{{ orderDetail.payTime | formatTime }}</text>
			</view>
		</view>
		<!-- 金额明细 -->
		<view class="yt-list">
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">商品金额</text>
				<text class="cell-tip">￥{{ orderDetail.totalPrice }}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">支付方式</text>
				<text class="cell-tip">{{ payType[orderDetail.payType] }}</text>
			</view>
			<view class="yt-list-cell desc-cell">
				<text class="cell-tit clamp">备注</text>
				<text>{{ orderDetail.orderNote }}</text>
			</view>
		</view>
		<view v-if="orderDetail.orderStatus== 0">
			<button @click="toPay()">去支付</button>
		</view>
		<view v-if="orderDetail.orderStatus== 2">
			<button @click="confirmOrder()">确认收货</button>
		</view>
	</view>
	
</template>

<script>
const util = require('@/utils/util.js');
const api = require('@/utils/api.js');
export default {
	filters: {
		formatTime(time) {
			return util.parseTime(time);
		},
		orderStatusFilter(status) {
			const statusMap = {
				3: '已完成',
				2: '待收货',
				1: '待发货',
				0: '未付款',
				'-1': '已取消'
			};
			return statusMap[status];
		}
	},

	data() {
		return {
			maskState: 0, //优惠券面板显示状态
			payType: ['余额', '微信', '支付宝'], // 0余额，1微信,   2支付宝
			orderDetail: {},
			orderItemList: [],
			min : 0,
			sec : 0
		};
	},
	onLoad(option) {
		//商品数据
		let orderId = option.orderId;
		this.getOrderDetail(orderId);
		
	},
	mounted() {
		
	},
	methods: {
		confirmOrder(){
			let orderId = this.orderDetail.id;
			let that = this;
			util.request(api.OrderConfirmGet + orderId, {}, 'POST').then(function(res) {
				that.getOrderDetail(orderId);
			});
		},
		toPay(){
			let param =  {
				orderId:this.orderDetail.id,
				totalPrice:this.orderDetail.totalPrice
			}
			uni.redirectTo({
				url: '/pages/money/pay?param='+JSON.stringify(param)
			})
		},
		getOrderDetail(orderId) {
			let that = this;
			util.request(api.OrderDetail + orderId, {}, 'GET').then(function(res) {
				that.orderDetail = res.data.omsOrderDetail;
				that.orderItemList = res.data.orderItemList;
				that.countdown()
			});
		},
		toggleMask(type) {
			let timer = type === 'show' ? 10 : 300;
			let state = type === 'show' ? 1 : 0;
			this.maskState = 2;
			setTimeout(() => {
				this.maskState = state;
			}, timer);
		},
		numberChange(data) {
			this.number = data.number;
		},
		changePayType(type) {
			this.payType = type;
		},
		// 提交订单
		submit() {
			let param = {
				cartIds: this.cartIds,
				memberReceiveAddressId: this.userAddress.id,
				note: this.desc,
				payType: 0
			};
			let that = this;
			util.request(api.GenerateOrder, JSON.stringify(param), 'POST', 'application/json').then(function(res) {
				console.log(res);
				if (res.code === 200) {
					let param = {
						orderId: res.data.order.id,
						totalPrice: res.data.order.totalPrice
					};
					uni.redirectTo({
						url: '/pages/money/pay?param=' + JSON.stringify(param)
					});
				} else {
					util.toast(res.message);
				}
			});
		},
		stopPrevent() {
			
		},
		// 倒计时
		countdown () {
			  let createTime = this.orderDetail.createTime;
			  let endDate = new Date(createTime)
			  endDate.setMinutes(endDate.getMinutes()+1)
			  			  
		      const end = Date.parse(endDate)
		      const now = Date.parse(new Date())
		      const msec = end - now
		
		      if(msec<0) return;
		
		      let day = parseInt(msec / 1000 / 60 / 60 / 24)
		      let hr = parseInt(msec / 1000 / 60 / 60 % 24)
		      let min = parseInt(msec / 1000 / 60 % 60)
		      let sec = parseInt(msec / 1000 % 60)
		      this.day = day
		      this.hr = hr > 9 ? hr : '0' + hr
		      this.min = min > 9 ? min : '0' + min
		      this.sec = sec > 9 ? sec : '0' + sec
		      const that = this
		      if(min>=0 && sec>=0){
		        //倒计时结束关闭订单
		        if(min==0 && sec==0){
					that.orderDetail.orderStatus = -1;
					return
		        }
		        setTimeout(function () {
		          that.countdown()
		        }, 1000)
		      }
		    }
	}
};
</script>

<style lang="scss">
page {
	background: $page-color-base;
	padding-bottom: 100upx;
}
.order-status-content{
	text-align: center;
	height: 200upx;
	background-color: $base-color;
}
.order-status-text{
	line-height: 200upx ;
	color: $font-color-white;
}
.order-time-text{
	line-height: 65upx ;
	color: $font-color-white;
}
.address-section {
	padding: 30upx 0;
	background: #fff;
	position: relative;

	.order-content {
		display: flex;
		align-items: center;
	}

	.icon-shouhuodizhi {
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 90upx;
		color: #888;
		font-size: 44upx;
	}

	.cen {
		display: flex;
		flex-direction: column;
		flex: 1;
		font-size: 28upx;
		color: $font-color-dark;
	}

	.name {
		font-size: 34upx;
		margin-right: 24upx;
	}

	.address {
		margin-top: 16upx;
		margin-right: 20upx;
		color: $font-color-light;
	}

	.icon-you {
		font-size: 32upx;
		color: $font-color-light;
		margin-right: 30upx;
	}

	.a-bg {
		position: absolute;
		left: 0;
		bottom: 0;
		display: block;
		width: 100%;
		height: 5upx;
	}
}

.goods-section {
	margin-top: 16upx;
	background: #fff;
	padding-bottom: 1px;

	.g-header {
		display: flex;
		align-items: center;
		height: 84upx;
		padding: 0 30upx;
		position: relative;
	}

	.logo {
		display: block;
		width: 50upx;
		height: 50upx;
		border-radius: 100px;
	}

	.name {
		font-size: 30upx;
		color: $font-color-base;
		margin-left: 24upx;
	}

	.g-item {
		display: flex;
		margin: 20upx 30upx;

		image {
			flex-shrink: 0;
			display: block;
			width: 140upx;
			height: 140upx;
			border-radius: 4upx;
		}

		.right {
			flex: 1;
			padding-left: 24upx;
			overflow: hidden;
		}

		.title {
			font-size: 30upx;
			color: $font-color-dark;
		}

		.spec {
			font-size: 26upx;
			color: $font-color-light;
		}

		.price-box {
			display: flex;
			align-items: center;
			font-size: 32upx;
			color: $font-color-dark;
			padding-top: 10upx;

			.price {
				margin-bottom: 4upx;
			}
			.number {
				font-size: 26upx;
				color: $font-color-base;
				margin-left: 20upx;
			}
		}

		.step-box {
			position: relative;
		}
	}
}
.yt-list {
	margin-top: 16upx;
	background: #fff;
}

.yt-list-cell {
	display: flex;
	align-items: center;
	padding: 10upx 30upx 10upx 40upx;
	line-height: 70upx;
	position: relative;

	&.cell-hover {
		background: #fafafa;
	}

	&.b-b:after {
		left: 30upx;
	}

	.cell-icon {
		height: 32upx;
		width: 32upx;
		font-size: 22upx;
		color: #fff;
		text-align: center;
		line-height: 32upx;
		background: #f85e52;
		border-radius: 4upx;
		margin-right: 12upx;

		&.hb {
			background: #ffaa0e;
		}

		&.lpk {
			background: #3ab54a;
		}
	}

	.cell-more {
		align-self: center;
		font-size: 24upx;
		color: $font-color-light;
		margin-left: 8upx;
		margin-right: -10upx;
	}

	.cell-tit {
		flex: 1;
		font-size: 26upx;
		color: $font-color-light;
		margin-right: 10upx;
	}

	.cell-tip {
		font-size: 26upx;
		color: $font-color-dark;

		&.disabled {
			color: $font-color-light;
		}

		&.active {
			color: $base-color;
		}
		&.red {
			color: $base-color;
		}
	}

	&.desc-cell {
		.cell-tit {
			max-width: 90upx;
		}
	}

	.desc {
		flex: 1;
		font-size: $font-base;
		color: $font-color-dark;
	}
}

/* 支付列表 */
.pay-list {
	padding-left: 40upx;
	margin-top: 16upx;
	background: #fff;
	.pay-item {
		display: flex;
		align-items: center;
		padding-right: 20upx;
		line-height: 1;
		height: 110upx;
		position: relative;
	}
	.icon-weixinzhifu {
		width: 80upx;
		font-size: 40upx;
		color: #6bcc03;
	}
	.icon-alipay {
		width: 80upx;
		font-size: 40upx;
		color: #06b4fd;
	}
	.icon-xuanzhong2 {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 60upx;
		height: 60upx;
		font-size: 40upx;
		color: $base-color;
	}
	.tit {
		font-size: 32upx;
		color: $font-color-dark;
		flex: 1;
	}
}

.footer {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 995;
	display: flex;
	align-items: center;
	width: 100%;
	height: 90upx;
	justify-content: space-between;
	font-size: 30upx;
	background-color: #fff;
	z-index: 998;
	color: $font-color-base;
	box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
	.price-content {
		padding-left: 30upx;
	}
	.price-tip {
		color: $base-color;
		margin-left: 8upx;
	}
	.price {
		font-size: 36upx;
		color: $base-color;
	}
	.submit {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 280upx;
		height: 100%;
		color: #fff;
		font-size: 32upx;
		background-color: $base-color;
	}
}

/* 优惠券面板 */
.mask {
	display: flex;
	align-items: flex-end;
	position: fixed;
	left: 0;
	top: var(--window-top);
	bottom: 0;
	width: 100%;
	background: rgba(0, 0, 0, 0);
	z-index: 9995;
	transition: 0.3s;

	.mask-content {
		width: 100%;
		min-height: 30vh;
		max-height: 70vh;
		background: #f3f3f3;
		transform: translateY(100%);
		transition: 0.3s;
		overflow-y: scroll;
	}
	&.none {
		display: none;
	}
	&.show {
		background: rgba(0, 0, 0, 0.4);

		.mask-content {
			transform: translateY(0);
		}
	}
}

/* 优惠券列表 */
.coupon-item {
	display: flex;
	flex-direction: column;
	margin: 20upx 24upx;
	background: #fff;
	.con {
		display: flex;
		align-items: center;
		position: relative;
		height: 120upx;
		padding: 0 30upx;
		&:after {
			position: absolute;
			left: 0;
			bottom: 0;
			content: '';
			width: 100%;
			height: 0;
			border-bottom: 1px dashed #f3f3f3;
			transform: scaleY(50%);
		}
	}
	.left {
		display: flex;
		flex-direction: column;
		justify-content: center;
		flex: 1;
		overflow: hidden;
		height: 100upx;
	}
	.title {
		font-size: 32upx;
		color: $font-color-dark;
		margin-bottom: 10upx;
	}
	.time {
		font-size: 24upx;
		color: $font-color-light;
	}
	.right {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		font-size: 26upx;
		color: $font-color-base;
		height: 100upx;
	}
	.price {
		font-size: 44upx;
		color: $base-color;
		&:before {
			content: '￥';
			font-size: 34upx;
		}
	}
	.tips {
		font-size: 24upx;
		color: $font-color-light;
		line-height: 60upx;
		padding-left: 30upx;
	}
	.circle {
		position: absolute;
		left: -6upx;
		bottom: -10upx;
		z-index: 10;
		width: 20upx;
		height: 20upx;
		background: #f3f3f3;
		border-radius: 100px;
		&.r {
			left: auto;
			right: -6upx;
		}
	}
}
</style>
